너는 다변량통계, 거리 기반 군집분석, 계층적 군집분석, K-means,
모형 기반 군집분석, 교통·도로 인프라 데이터 분석을 수행하는
전문 데이터 분석가이자 Python 개발자이다.

첨부한 CSV 또는 Excel 데이터는 500개 지역의 도로 인프라 및
교통 특성을 요약한 자료이다.

분석 목적은 다음과 같다.

1. 지역별 도로·교통 특성을 표준화한다.
2. 다양한 거리척도를 계산하고 차이를 비교한다.
3. 계층적 군집분석을 통해 지역 간 유형 구조를 탐색한다.
4. Elbow, Silhouette 및 추가 군집평가지표로 최적 군집 수를 결정한다.
5. Gaussian Mixture Model을 이용한 모형 기반 군집분석을 수행한다.
6. K-means 군집분석을 수행한다.
7. 군집별 특성을 비교하고 각 군집에 의미 있는 이름을 부여한다.
8. 군집별 사고·소음·포장 상태와 도로 규모를 바탕으로
   정책 및 유지관리 대응 전략을 제안한다.

반드시 Python 코드를 작성한 후 실제 Python 실행 환경에서 실행하여라.
분석 결과를 추정하거나 예시 수치로 작성하지 말고,
첨부한 데이터로 실제 계산된 값만 제시하여라.

────────────────────────────────────
0. 데이터 구조와 변수 의미
────────────────────────────────────

데이터의 예상 변수는 다음과 같다.

- Region_ID
  · 지역 식별번호
  · 범주형 또는 식별자
  · 군집분석 입력에서는 제외
  · 최종 군집 결과표에는 다시 결합

- Traffic_Accidents
  · 연간 교통사고 건수
  · 높을수록 안전성이 좋지 않은 패널티 변수

- Noise_dB
  · 평균 교통소음
  · 높을수록 환경·정주성이 좋지 않은 패널티 변수

- IRI_m_per_km
  · 국제평탄성지수 또는 포장 불균질·열화 수준
  · 높을수록 노면 상태가 좋지 않은 패널티 변수

- Road_Length_km
  · 지역 내 도로 연장 규모
  · 높다고 반드시 성능이 좋거나 나쁜 변수는 아님
  · 지역의 도로 규모 또는 관리대상 규모를 나타내는 구조 변수

실제 데이터의 변수명이 다르면
공백, 대소문자, 특수문자 등을 확인하여 가장 가까운 변수명을 찾아라.
임의로 존재하지 않는 데이터를 만들지 마라.

분석 입력변수는 기본적으로 다음 네 변수로 한다.

- Traffic_Accidents
- Noise_dB
- IRI_m_per_km
- Road_Length_km

Region_ID는 분석에서 제외하고 결과 식별용으로만 사용한다.

────────────────────────────────────
공통 분석 원칙
────────────────────────────────────

1. CSV와 Excel 파일을 자동으로 탐색하여 불러와라.
2. 파일이 여러 개이면 후보 파일 목록을 출력하고
   분석에 적합한 파일을 선택한 근거를 설명하여라.
3. 변수명 앞뒤 공백과 불필요한 특수문자를 정리하여라.
4. 수치형 변수는 pd.to_numeric을 이용하여 변환하여라.
5. 결측치와 무한대 값을 확인하여라.
6. 분석 전후 표본 수 N을 명시하여라.
7. random seed는 42로 고정하여라.
8. 그래프와 표는 실제 실행 결과로 작성하여라.
9. 코드와 결과가 일치하는지 확인하여라.
10. 분석 도중 오류가 발생하면 원인을 수정한 뒤 다시 실행하여라.
11. 전체 Python 코드는 처음부터 끝까지 재실행 가능해야 한다.
12. 가능한 그래프와 최종 결과표는 PNG, CSV 및 Excel로 저장하여라.

────────────────────────────────────
[문제 1] 데이터 표준화 및 기초 탐색
────────────────────────────────────

다음 절차를 수행하여라.

1-1. 데이터 불러오기

다음을 출력하여라.

- 파일명
- 행 수와 열 수
- 변수명
- 데이터 앞부분 5행
- 변수별 자료형
- 수치형 변수와 범주형 변수 구분

1-2. 데이터 품질 점검

다음을 확인하고 표로 제시하여라.

- 변수별 결측치 개수
- 변수별 결측치 비율
- 중복 행 개수
- 무한대 값 개수
- 최소값
- 최대값
- 평균
- 표준편차
- 중앙값
- 1사분위수와 3사분위수

결측치가 존재하면 다음 원칙을 적용하여라.

- 결측치 비율이 매우 낮으면 해당 행 제거를 우선 검토
- 결측치 비율이 무시하기 어려우면 중앙값 대체 등
  적절한 방법을 제안하고 적용 이유를 설명
- 원자료와 결측치 처리 후 표본 수를 모두 제시

1-3. 이상치 탐색

다음을 작성하여라.

- 변수별 boxplot
- IQR 기준 이상치 개수
- 극단적 이상치 후보 지역
- 이상치를 제거할지 유지할지 판단

군집분석에서는 실제 지역 특성 차이가 이상치처럼 나타날 수 있으므로
기계적으로 제거하지 말고, 데이터 오류인지 실제 특이 지역인지 구분하여라.

1-4. 변수 단위가 서로 다른 이유 설명

다음과 같은 차이를 설명하여라.

- 사고 건수: 건
- 소음: dB
- IRI: m/km
- 도로 연장: km

단위와 변동범위가 서로 다르기 때문에
원자료로 거리를 계산하면 큰 척도를 가진 변수가
군집 결과를 지배할 수 있음을 설명하여라.

1-5. 군집분석 전 표준화 필요성 설명

다음 내용을 설명하여라.

- 거리 기반 군집분석은 변수 척도에 민감함
- 표준화를 하지 않으면 Road_Length_km 또는 사고 건수가
  거리 계산을 지배할 수 있음
- StandardScaler를 적용하면 각 변수는 평균 0,
  표준편차 1의 Z점수로 변환됨
- 각 변수가 거리 계산에 비교적 동등하게 기여함

1-6. 데이터 표준화

다음 네 변수에 StandardScaler를 적용하여라.

- Traffic_Accidents
- Noise_dB
- IRI_m_per_km
- Road_Length_km

표준화 후 다음을 확인하여라.

- 각 변수의 평균이 약 0인지
- 각 변수의 표준편차가 약 1인지
- 결측치나 무한대가 없는지

표준화 전후 기술통계를 표로 비교하여라.

표준화된 데이터는 X_scaled로 저장하여라.

────────────────────────────────────
[문제 2] 다양한 거리척도 계산
────────────────────────────────────

표준화된 데이터 X_scaled를 이용하여
다음 세 종류의 거리행렬을 계산하여라.

2-1. Euclidean distance

scipy.spatial.distance.pdist 또는
sklearn.metrics.pairwise_distances를 이용하여 계산하여라.

유클리드 거리가 다음을 의미함을 설명하여라.

- 다차원 공간에서 두 지역 간 직선거리
- 변수 차이의 제곱합에 기반
- K-means와 Ward 방법에 일반적으로 적합

2-2. Manhattan distance

Manhattan 거리를 계산하여라.

다음을 설명하여라.

- 각 변수별 절대차이의 합
- 이상치의 제곱 영향이 유클리드 거리보다 상대적으로 작음
- 도시 블록 거리와 유사한 개념

2-3. Correlation-based distance

상관거리의 정의를 다음과 같이 적용하여라.

Correlation distance = 1 - Pearson correlation

각 지역의 변수 패턴 간 유사성을 비교하는 거리임을 설명하여라.

단, 변수 수가 4개로 적기 때문에 지역 간 상관계수가 불안정할 수 있음을
분석의 한계로 명시하여라.

2-4. 거리행렬 비교

다음을 제시하여라.

- 각 거리행렬의 크기
- 거리값의 최소, 최대, 평균, 중앙값
- 첫 10개 지역에 대한 거리행렬 heatmap
- 세 거리척도 간 Mantel 검정 또는
  거리행렬 상삼각 원소 간 Pearson/Spearman 상관계수

다음 질문에 답하여라.

- 세 거리척도는 지역 간 유사성을 얼마나 비슷하게 평가하는가?
- 특정 거리척도에서 특히 멀리 나타나는 지역은 어디인가?
- 본 데이터에는 어떤 거리척도가 가장 적절한가?

────────────────────────────────────
[문제 3] 계층적 군집분석
────────────────────────────────────

3-1. Ward 계층적 군집분석

표준화된 데이터와 Euclidean distance를 사용하여
Ward 계층적 군집분석을 수행하여라.

Python에서는 scipy.cluster.hierarchy의 linkage를 사용하고
method='ward'를 적용하여라.

중요:

Ward 방법은 군집 내 제곱합 증가를 최소화하는 방법이므로
Euclidean distance와 함께 사용하는 것이 원칙이다.

Manhattan distance 또는 correlation distance에
Ward 방법을 적용하지 마라.

3-2. 추가 연결법 비교

가능하면 다음 조합도 보조적으로 비교하여라.

- Euclidean + complete linkage
- Manhattan + complete linkage
- Correlation distance + average linkage

각 방법의 군집 구조 차이를 설명하여라.

3-3. 덴드로그램 작성

Ward 계층적 군집분석의 덴드로그램을 작성하여라.

다음 사항을 포함하여라.

- 제목
- y축: linkage distance
- x축: 지역 또는 표본
- 표본이 500개이므로 모든 라벨을 표시하지 않거나
  truncated dendrogram을 함께 작성
- 주요 군집 분할 지점 표시
- 후보 군집 수 2~10개에 해당하는 절단선 검토

다음을 해석하여라.

- 어느 높이에서 큰 군집 분리가 발생하는가?
- 2개, 3개, 4개, 5개 군집 중 어떤 구조가 자연스러운가?
- 지나치게 작은 단독 군집이 발생하는가?

────────────────────────────────────
[문제 4] 최적 군집 수 결정
────────────────────────────────────

K-means를 기준으로 k=2~10 범위의 군집 수를 검토하여라.

표본 수와 데이터 구조상 범위 조정이 필요하면 이유를 설명하여라.

각 k에 대해 다음 지표를 계산하여라.

1. Inertia 또는 WCSS
2. Silhouette Score
3. Calinski–Harabasz Index
4. Davies–Bouldin Index

4-1. Elbow method

k별 WCSS를 계산하고 Elbow Plot을 작성하여라.

KneeLocator 사용이 가능하면 자동 elbow 후보도 산출하되,
시각적 판단과 함께 제시하여라.

4-2. Silhouette analysis

다음을 제시하여라.

- k별 평균 Silhouette Score
- Silhouette Score Plot
- 후보 k별 silhouette plot
- 음의 silhouette 값을 가진 표본의 비율
- 군집별 silhouette 평균

4-3. 추가 평가

다음을 함께 계산하여라.

- Calinski–Harabasz: 높을수록 양호
- Davies–Bouldin: 낮을수록 양호

4-4. 최적 군집 수 종합 결정

다음 기준을 종합하여 최적 군집 수 optimal_k를 결정하여라.

- Elbow 지점
- Silhouette Score 최대 또는 준최대
- Calinski–Harabasz 최대
- Davies–Bouldin 최소
- 군집별 표본 수 균형
- 군집별 특성 차이
- 도로·교통 관리 측면에서의 해석 가능성
- 지나치게 작은 군집 발생 여부

단일 지표만으로 선택하지 말고,
각 지표가 서로 다른 k를 제안하면 그 차이를 설명하고
최종 선택 근거를 논리적으로 제시하여라.

────────────────────────────────────
[문제 5] 모형 기반 군집분석
────────────────────────────────────

R의 mclust에 대응하는 분석으로
Python의 sklearn.mixture.GaussianMixture를 사용하여라.

5-1. 후보 모형 설정

다음 covariance_type을 비교하여라.

- spherical
- diag
- tied
- full

군집 수는 k=1~10 범위에서 평가하여라.

각 조합에 대해 다음을 계산하여라.

- BIC
- AIC
- log-likelihood
- 수렴 여부

GaussianMixture는 다음 조건으로 실행하여라.

- random_state=42
- n_init를 충분히 설정
- max_iter를 명시
- reg_covar를 설정하여 수치적 안정성 확보

5-2. 최적 모형 선택

BIC가 가장 낮은 모형과 군집 수를 선택하여라.

다음을 출력하여라.

- 최적 covariance_type
- 최적 군집 수
- 최저 BIC
- AIC
- 각 후보 모형의 BIC 표
- 군집 수별 BIC 그래프

5-3. 모형 기반 군집의 불확실성

각 표본에 대해 군집 소속 사후확률을 계산하여라.

다음을 제시하여라.

- 최대 소속확률
- 소속 불확실성이 높은 지역
- 최대 확률이 0.60 또는 0.70 미만인 지역
- 군집별 평균 분류확률

모형 기반 군집 수와
문제 4에서 선정한 K-means 최적 군집 수를 비교하여라.

두 결과가 다르면 다음을 검토하여라.

- 군집의 구형성 여부
- 군집별 분산 차이
- 타원형 군집 구조
- 군집 크기 불균형
- 비정규적 데이터 분포

────────────────────────────────────
[문제 6] K-means 군집분석
────────────────────────────────────

문제 4에서 선정한 optimal_k를 이용하여
표준화된 데이터에 K-means 군집분석을 수행하여라.

다음 설정을 적용하여라.

- n_clusters=optimal_k
- random_state=42
- n_init=50
- max_iter=500

다음을 제시하여라.

- 각 지역의 군집번호
- 군집별 표본 수
- 군집 중심점
- 표준화 변수 기준 군집 중심점
- 원자료 단위로 역변환한 군집 중심점
- 군집 내 제곱합
- 최종 inertia
- 최종 silhouette score

군집번호 0, 1, 2 등은
성능의 우열 순서가 아님을 설명하여라.

시각화를 위해 PCA를 2차원에만 사용하여
PC1-PC2 산점도에 K-means 군집을 표시하여라.

중요:

PCA는 시각화용으로 사용할 수 있지만,
별도 요구가 없는 경우 K-means 자체는
원래 4개의 표준화 변수 공간에서 수행하여라.

산점도에는 다음을 포함하여라.

- 각 지역의 점
- 군집별 구분
- 군집 중심
- PC1과 PC2 설명분산비율
- 범례
- 필요하면 대표 지역 ID

────────────────────────────────────
[문제 7] 군집별 특성 분석
────────────────────────────────────

7-1. 군집별 평균 특성

원자료 기준으로 다음의 군집별 평균을 계산하여라.

- Traffic_Accidents
- Noise_dB
- IRI_m_per_km
- Road_Length_km

다음 통계도 함께 제시하여라.

- 표본 수
- 평균
- 표준편차
- 중앙값
- 최소값
- 최대값

7-2. 전체 평균 대비 차이

각 군집의 변수 평균이 전체 평균에 비해
얼마나 높거나 낮은지 계산하여라.

다음을 제시하여라.

- 원자료 평균 차이
- 표준화된 군집 중심점
- 전체 평균 대비 백분율
- 변수별 군집 순위

7-3. 군집 프로파일 시각화

다음 그래프를 작성하여라.

- 표준화 변수 기준 군집 프로파일 line plot 또는 radar chart
- 변수별 군집 boxplot
- 군집별 평균 heatmap
- 군집 크기 bar chart

radar chart는 선택적으로 사용하되,
축의 왜곡 가능성을 설명하고
heatmap 또는 line plot을 기본 시각화로 사용하여라.

7-4. 군집 차이 검정

각 변수별로 군집 간 차이가 유의한지 검토하여라.

다음을 수행하여라.

- 정규성 및 등분산성을 검토
- 조건이 적절하면 일원분산분석 ANOVA
- 등분산성이 충족되지 않으면 Welch ANOVA
- 분포가 현저히 비정규적이면 Kruskal–Wallis 검정
- 필요하면 사후검정
  · Tukey HSD
  · Games–Howell
  · Dunn test 중 적합한 방법

효과크기도 함께 제시하여라.

- eta squared
- omega squared
- epsilon squared 등 분석에 적합한 지표

군집은 동일 데이터로 생성된 집단이므로
통계적 유의성은 탐색적으로 해석해야 함을 명시하여라.

────────────────────────────────────
[문제 8] 군집 명명
────────────────────────────────────

각 군집의 이름은 군집번호만 보고 정하지 말고,
다음 네 변수의 상대적 수준을 바탕으로 직접 명명하여라.

- 사고 수준
- 소음 수준
- 포장 열화 수준
- 도로 연장 규모

군집별로 다음 표를 작성하여라.

| 군집 | 표본 수 | 주요 특성 | 전체 평균 대비 특징 | 군집 이름 |
|------|---------|-----------|---------------------|-----------|

군집 이름은 짧고 정책적으로 이해하기 쉽게 작성하여라.

가능한 명명 예시는 참고만 하고,
실제 결과에 따라 새롭게 명명하여라.

예시:

- 사고·소음 집중형 대규모 도로지역
- 저사고·저소음 안정형 지역
- 포장 열화 집중 관리형 지역
- 도로 규모 대비 관리 양호형 지역
- 교통안전 취약형 지역
- 소음환경 개선 우선형 지역
- 복합 취약 고위험형 지역
- 소규모 저부담형 지역

각 군집 이름의 근거를 2~4문장으로 설명하여라.

군집 이름에 ‘우수’, ‘취약’, ‘고위험’과 같은 표현을 사용할 경우
어떤 변수의 평균에 근거했는지 명확히 제시하여라.

────────────────────────────────────
[문제 9] 대응 전략 제시
────────────────────────────────────

각 군집 유형에 대해 도로·교통·환경·유지관리 정책을 연결하여라.

9-1. 우선 관리 대상 군집 선정

우선 관리 대상은 다음 기준을 종합하여 결정하여라.

- 교통사고 건수가 높음
- 소음 수준이 높음
- IRI가 높아 포장상태가 불량함
- 도로 연장이 길어 관리 부담이 큼
- 한 가지 문제가 아니라 복합적인 취약성이 존재함

단순히 군집번호가 크거나 작다는 이유로
우선순위를 정하지 마라.

9-2. 군집별 관리 우선순위

각 군집에 대해 다음 중 어떤 분야가 우선인지 결정하여라.

- 교통안전 개선
- 교통소음 저감
- 포장 보수·보강
- 예방적 유지관리
- 정밀점검 및 모니터링
- 도로망 운영 효율화
- 장기 유지관리 예산 확보

9-3. 구체적 대응 전략

각 군집별로 다음 형식으로 제시하여라.

1. 주요 문제
2. 관리 목표
3. 단기 대응
4. 중기 대응
5. 장기 대응
6. 모니터링 KPI
7. 정책 우선순위

가능한 전략 예시는 다음과 같다.

교통사고가 높은 군집:

- 사고다발지점 분석
- 교차로 구조 개선
- 제한속도 및 신호운영 개선
- 보행자 안전시설 확충
- 노면표시·조명·시인성 개선
- 교통안전 점검 주기 단축

소음이 높은 군집:

- 저소음 포장
- 방음벽 및 방음시설
- 대형차 통행 관리
- 속도관리
- 주거지역 완충구간
- 소음 모니터링 센서 설치

IRI가 높은 군집:

- 정밀 포장상태 조사
- 절삭·덧씌우기
- 균열 봉합
- 소성변형 및 포트홀 보수
- 예방적 유지관리
- 포장관리시스템 PMS 연계

도로 연장이 긴 군집:

- 구간별 위험도 기반 우선순위
- 전수조사보다 표본·센서 기반 모니터링
- 유지관리 예산의 단계적 배분
- 생애주기비용 기반 유지관리
- 중요 노선과 취약구간 우선 관리

복합 취약 군집:

- 통합 개선사업
- 안전·소음·포장 동시 개선
- 집중 예산 배정
- 현장 정밀조사
- 연차별 성과지표 관리

9-4. KPI 제안

각 군집별로 측정 가능한 KPI를 제안하여라.

예:

- 연간 교통사고 감소율
- 중대사고 건수
- 평균 소음 감소량
- 기준 소음 초과 지역 비율
- 평균 IRI 개선율
- 포트홀 발생 건수
- 예방정비 비율
- 긴급보수 건수
- km당 유지관리비
- 민원 건수
- 개선사업 완료율

9-5. 정책 우선순위 매트릭스

군집별로 다음 두 축을 이용한 정책 우선순위 매트릭스를 작성하여라.

- x축: 관리 난이도 또는 관리대상 규모
- y축: 사고·소음·포장 열화 등 위험 수준

각 군집을 다음 유형 중 하나로 구분하여라.

- 즉시 집중개선
- 단계적 개선
- 예방관리 강화
- 현 수준 유지·모니터링

가능하면 군집별 위험점수를 별도로 계산하여라.

예시 방향:

- Traffic_Accidents: 높을수록 위험 증가
- Noise_dB: 높을수록 위험 증가
- IRI_m_per_km: 높을수록 위험 증가
- Road_Length_km: 관리 부담 증가

위험점수는 표준화된 네 변수의 단순 평균 또는
정책적 근거가 있는 가중평균으로 계산할 수 있다.

임의 가중치를 사용하지 말고,
가중치가 별도로 주어지지 않았다면 동일가중치를 사용하고
그 한계를 설명하여라.

────────────────────────────────────
군집분석 결과 간 비교
────────────────────────────────────

다음 세 가지 군집분석 결과를 비교하여라.

1. 계층적 군집분석
2. Gaussian Mixture Model
3. K-means

각 방법의 군집 수와 군집 배정 결과를 비교하여라.

다음을 계산하여라.

- Adjusted Rand Index
- Normalized Mutual Information
- 군집 간 교차표
- 군집별 표본 수
- 군집 일치율

군집번호는 방법마다 임의로 부여되므로
단순 번호 일치를 비교하지 말고,
ARI 및 NMI를 이용하여 비교하여라.

다음을 해석하여라.

- 서로 다른 방법이 유사한 지역 유형을 발견했는가?
- 특정 지역의 군집 배정이 방법에 따라 달라지는가?
- 최종 정책 분석에는 어떤 군집 결과가 가장 적합한가?
- K-means 결과를 최종안으로 사용할 경우 그 이유는 무엇인가?

────────────────────────────────────
최종 결과표
────────────────────────────────────

최종 결과표에는 다음 항목을 포함하여라.

- Region_ID
- Traffic_Accidents
- Noise_dB
- IRI_m_per_km
- Road_Length_km
- 표준화된 각 변수
- Hierarchical_Cluster
- GMM_Cluster
- GMM_Max_Probability
- KMeans_Cluster
- Cluster_Name
- Risk_Score
- Management_Priority
- Recommended_Strategy

결과표는 다음 파일로 저장하여라.

- road_cluster_final_results.csv
- road_cluster_final_results.xlsx

군집별 요약표도 별도로 저장하여라.

- road_cluster_profiles.csv
- road_cluster_profiles.xlsx

────────────────────────────────────
저장할 그래프
────────────────────────────────────

다음 그래프를 각각 PNG 파일로 저장하여라.

1. basic_boxplots.png
2. correlation_heatmap.png
3. distance_comparison_heatmap.png
4. hierarchical_dendrogram.png
5. elbow_plot.png
6. silhouette_score_plot.png
7. silhouette_analysis.png
8. cluster_validation_indices.png
9. gmm_bic_plot.png
10. kmeans_pca_scatter.png
11. cluster_profile_heatmap.png
12. cluster_boxplots.png
13. cluster_size_plot.png
14. policy_priority_matrix.png

모든 그래프에는 다음을 포함하여라.

- 명확한 제목
- 축 이름
- 단위
- 범례
- 필요한 경우 표본 수
- 가독성 있는 글자 크기

한글 폰트가 실행 환경에 없을 경우
영문 변수명을 사용하거나 사용 가능한 폰트를 자동 탐색하여라.
폰트 오류 때문에 전체 분석이 중단되지 않도록 예외 처리하여라.

────────────────────────────────────
Python 코드 요구사항
────────────────────────────────────

전체 Python 코드는 하나의 연속된 코드로 제공하여라.

주요 라이브러리는 다음을 사용할 수 있다.

- pandas
- numpy
- matplotlib
- scipy
- scikit-learn
- statsmodels
- openpyxl
- seaborn이 없어도 실행 가능하도록 matplotlib 중심으로 작성 가능
- kneed
- scikit-posthocs
- pingouin
- factor_analyzer

설치되지 않은 선택적 패키지가 있으면
pip 설치 여부를 확인하거나
해당 패키지 없이 실행 가능한 대체 코드를 제공하여라.

코드에는 다음 기능을 포함하여라.

- 데이터 파일 자동 탐색
- CSV 인코딩 오류 대응
- Excel 파일 대응
- 변수명 자동 정리
- 변수 존재 여부 검증
- 수치형 변환
- 결측치 처리
- 이상치 진단
- StandardScaler
- 거리행렬 계산
- 계층적 군집분석
- 덴드로그램
- 군집 수 평가
- K-means
- GaussianMixture
- PCA 시각화
- 군집 프로파일
- 군집 간 차이 검정
- 군집 명명 지원
- 위험점수 계산
- 정책 우선순위 분류
- CSV 및 Excel 저장
- PNG 그래프 저장
- random_state=42
- 오류 처리

코드 실행 전 예상 결과를 만들지 마라.

반드시 코드를 실제로 실행하고,
실행 중 오류가 있으면 수정하여 다시 실행한 후
최종적으로 정상 실행된 코드와 결과를 제시하여라.

────────────────────────────────────
최종 답변 출력 순서
────────────────────────────────────

최종 답변은 반드시 다음 순서로 작성하여라.

① 분석 목적  
② 데이터 구조 및 변수 의미  
③ 문제 1: 데이터 표준화 및 기초 탐색  
④ 문제 2: 거리척도 계산 및 비교  
⑤ 문제 3: 계층적 군집분석 및 덴드로그램  
⑥ 문제 4: 최적 군집 수 결정  
⑦ 문제 5: 모형 기반 군집분석 및 BIC 결과  
⑧ 문제 6: K-means 군집분석 결과  
⑨ 문제 7: 군집별 평균 및 특성 분석  
⑩ 문제 8: 군집별 명명과 명명 근거  
⑪ 문제 9: 군집별 정책·관리 대응 전략  
⑫ 군집분석 방법 간 결과 비교  
⑬ 유지관리 우선순위 및 KPI  
⑭ 분석의 한계  
⑮ 전체 Python 코드  
⑯ 실제 Python 실행 결과  
⑰ 생성된 표와 그래프  
⑱ 다운로드 가능한 CSV·Excel·PNG 파일

각 문제에서는 다음을 구분하여 제시하여라.

- 분석 목적
- 사용 방법
- Python 코드
- 실제 실행 결과
- 결과 해석
- 도로공학적 의미

가상의 최적 군집 수, 평균값, p값, BIC,
silhouette score 또는 군집명을 작성하지 마라.

첨부된 실제 데이터로 Python을 실행한 뒤
산출된 결과만 최종 답변에 사용하여라.